//
//  XBStackAndQueueTest.c
//  数据结构算法和笔试题
//
//  Created by Ceasar on 16/6/9.
//  Copyright © 2016年 xiaobai. All rights reserved.
//

#include "XBStackAndQueueTest.h"

void testLinkStack()
{
    
    XBLinkStack stack ;
    
    initLinkStack(&stack);
    
    for(int i =1;i<6;i++)
    {
        pushLinkStack(&stack, i);
    }
    while (!isLinkStackEmpty(&stack)) {
        int t ;
        popLinkStack(&stack, &t);
        printf("%d  ",t);
    }
    
}
void testXBCommonQueue()
{
    XBQueue Q;
    int i,n;
    int x;
    initXBQueue(&Q);
    n = 5;
    printf("入队的元素:\n");
    for(i=1;i<=n;i++)
    {
        insertXBQueue(&Q, i+10);
    }
    printXBQueue(Q);
    printf("顺序队列的长度为：%d\n",getXBQueueLength(Q));
    for(i=1;i<=n;i++)
    {
        delXBQueueItem(&Q,&x);
        printf("第%d次出队，出队列的元素为：%d\n",i,x);
        printXBQueue(Q);
        printf("\n");
    }
    printf("入队的元素是100");
    insertXBQueue(&Q, 100);
    printf("顺序队列的长度：%d\n",getXBQueueLength(Q));
    printf("\n");
    printf("顺序队列的元素:\n");
    printXBQueue(Q);
    printf("\n");
    
}

void testXBLoopQueue()
{
    
    XBLoopQueue LoopQ;
    initXBLoopQueue(&LoopQ);
    printf("想插入7个元素:\n");
    for (int i = 0; i<6; i++) {
        insertXBLoopQueue(&LoopQ, i+11);
    }
    printf("实际插入了:%d\n",getXBLoopQueueLength(LoopQ));
    printXBLoopQueue(LoopQ);
    DATATYPE e;
    
    delXBLoopQueueItem(&LoopQ, &e);
    printf("%d ",e);
    printXBLoopQueue(LoopQ);
    
    delXBLoopQueueItem(&LoopQ, &e);
    printf("%d ",e);
    printXBLoopQueue(LoopQ);

    printf("插入元素:100\n");
    insertXBLoopQueue(&LoopQ, 100);
    printXBLoopQueue(LoopQ);

    insertXBLoopQueue(&LoopQ, 101);
    insertXBLoopQueue(&LoopQ, 102);
    
    printXBLoopQueue(LoopQ);
}















